package com.alibaba.citrus.cr.price.sdo.activity;

import lombok.Data;

import java.io.Serializable;
import java.util.Objects;

/**
 * @author hanguo
 * @date 2021/10/14
 * @Description 活动项目信息数据
 */
@Data
public class ActivityTermSDO implements Serializable {
    private static final long serialVersionUID = -7665658888724755118L;
    /**
     * 促销活动 ID
     */
    private String activityId;
    /**
     * 促销活动项目 ID
     */
    private String activityTermId;
    /**
     * 促销活动类型
     */
    private Integer activityDetailType;
    /**
     * 业态
     */
    private String businessFormat;
    /**
     * 品牌
     */
    private String brand;

    /**
     * 品类
     */
    private String itemCategory;
    /**
     * 品项
     */
    private String itemSubject;
    /**
     * 特价
     */
    private String specialOfferPrice;
    /**
     * 销售单元
     */
    private String salesUnit;
    /**
     * 货品 ID
     */
    private String itemId;
    /**
     * 货品数量
     */
    private Integer itemQuantity;
    /**
     * 赠品 ID
     */
    private String giftId;
    /**
     * 赠品数量
     */
    private Integer giftQuantity;
    /**
     * 赠品描述
     */
    private String facadeDescription;
    /**
     * 申请费用
     */
    private Long applyFee;
    /**
     * 申请货品数量
     */
    private Integer applyItemQuantity;
    /**
     * 货币
     */
    private String currency;
    /**
     *活动力度说明
     */
    private String intensityOfActivityDesc;
    /**
     * 总部投入金额
     */
    private Long headQuartersInvestMoney;
    /**
     * 公司投入金额
     */
    private Long companySelfInvestMoney;
    /**
     * 等级数量
     */
    private Integer gradeQuantity;
    /**
     * 活动占用数量
     */
    private Integer activityOccupyQuantity;
    /**
     * 活动占用金额
     */
    private Long activityOccupyFee;
    /**
     * 活动版本号
     */
    private Integer version;

    /**
     * 扩展参数
     */
    private String features;

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof ActivityTermSDO)) {
            return false;
        }
        ActivityTermSDO that = (ActivityTermSDO) o;
        return Objects.equals(getActivityId(), that.getActivityId())
                && Objects.equals(getActivityTermId(), that.getActivityTermId());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getActivityId(), getActivityTermId());
    }
}
